In many cases, a group of computing systems within a data center is allocated a specific power budget, e.g., an overall power consumption limit. To maintain the overall power consumption below the power budget at the datacenter level, most servers hosted in the datacenter are provided with their own power budget. These servers include a technology that continuously monitors power consumed by the server. When such power consumption exceeds the given power budget, the server performance may be scaled back, or throttled, in order to reduce the power below the power budget. Even for identically configured, i.e., homogeneous, computing systems running identical workloads, the power consumed by the computing systems may vary. This is mainly due to variations in characteristic of components within the computing systems and environmental conditions. Thus, the performances of the homogeneous computing systems subjected to an identical power budget may vary significantly. For example, for a group of 10,000 homogeneous computing systems with an identical power budget, some number of the computing systems may not be subjected to any throttling, while others may be throttled by as much as 20%.
In some cases, computation for a workload may occur in more than one computing system. In such cases, the workload may be distributed across multiple computing systems. These computing systems usually communicate with each other or with a central controller to exchange information, synchronize information, or maintain the integrity of the workload. Differences in performances between the computing systems caused by the power budgets of the computing systems may result in multiple issues. For example, in a distributed computing environment, there may be only one computing system for which the performance was throttled by 20% in order to meet the power budget at the system level. However, in order to maintain adequate synchronization, the performances of the aggregate might also be throttled by 20% if the computing systems need to wait on completion of sub-tasks. As a second example, previous experience has shown that small variations in the performances of individual computing systems can contribute to large performance variations of the aggregate. This led to efforts to minimize the variation between computing systems for performing various operations, such as OS tasks, interrupts, background tasks, or the like. Thus, many computing systems may be operating at a lower performance than the performance that is allowed by their power budgets.
The same numbers are used throughout the disclosure and the figures to reference like components and features. Numbers in the 100 series refer to features originally found in FIG. 1; numbers in the 200 series refer to features originally found in FIG. 2; and so on.